#ifndef __MAIZE_RTOS_HARDWARE_H
#define __MAIZE_RTOS_HARDWARE_H

#include "mzconfig.h"
#include "mzdef.h"

#ifdef __cplusplus
extern "C" {
#endif

/* from c */
void mz_hw_system_init(void);
mz_uint8_t* mz_hw_stack_init(void* entry,
                             void* arg,
                             mz_uint8_t* stack_addr);
	
/* from s */
mz_uint32_t mz_hw_interrupt_disable(void);
void mz_hw_interrupt_enable(mz_uint32_t level);
void mz_hw_first_switch_to(mz_uint32_t target_sp);
void mz_hw_context_switch(mz_uint32_t from, mz_uint32_t to);

#ifdef __cplusplus
}
#endif

#endif